<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;

class Test extends Admincontroller
{

    public function index()
    {
//        2.1. 快捷查询
        $row = Db::table('user')
//            ->where('id','5')
//            ->where('id', '=',5)
            ->where('id', '<', 5)
            ->select();

        $row = Db::table('user')
            ->where('id', 'in', [1, 3, 5])
            ->select();

        $row = Db::table('user')
            ->where('age', '>', '18')
            ->where('name', 'like', '%王%')
            ->select();

        $row = Db::table('user')
            ->where('name', 'like', '%黄%')
            ->whereOr('name', 'like', '%王%')
            ->select();
//
//        2.2. 批量查询
        $row = Db::table('user')
            ->where([
                'id' => ['between', '10,20'],
                'sex' => ['eq', '0']
            ])
            ->select();

        $row = Db::table('user')
            ->where('sex', 'eq', '0')
            ->where('id', ['between', '1,3'], ['in', [6, 66, 666]], 'or')
            ->select();
//
//        2.3. 区间查询
        $row = Db::table('user')
            ->where('id', ['>', 2], ['<=', 5])
            ->select();

//
//        2.4. 多表查询
//            1). 手动多表
        $row = Db::field('u.name uname, l.name lname')
            ->table(['user'=>'u','lover'=>'l'])
            ->where('u.id = l.user_id')
            ->select();

//            2). JOIN
        $row = Db::table('user')
            ->alias('u')
            ->field(['u.name'=>'un','l.name'=>'ln'])
            ->join('lover l', 'u.id = l.user_id')
            ->order('un')
            ->select();


//            3). 视图
        $row = Db::view('user', ['name'=>'un'])
            ->view('lover',['name'=>'ln'], 'user.id = lover.user_id')
            ->select();

//        2.5. 聚合查询
        $row = Db::table('user')->avg('age');

        $row = Db::table('user')
            ->field('province, count(id)')
            ->group('province')
            ->select();

        $row = Db::table('user')
            ->field('province, group_concat(name)')
            ->group('province')
            ->select();

//        2.6. 子查询
//            1.fetchSql 方式
//            2.buildSql 方式


        var_dump($row);
    }


}
